({
    returnData: function (component) {

        // 调用条件
        const doCondition = component.get('v.doCondition');
        console.log('doCondition=', doCondition);

        //当doCondition=init时
        if (doCondition == 'init') {
            //获取值
            var searchKeyWord = component.get("v.searchKeyWord");

            // 调用后台类
            var action = component.get("c.getEmployees");
            // 设置请求参数
            action.setParams({
                searchKeyWord: searchKeyWord,
            });
            // 处理回调函数
            action.setCallback(this, function (res) {
                // 返回状态
                var state = res.getState();
                if (state == "SUCCESS") {
                    // 处理响应
                    var resData = res.getReturnValue();
                    //所有数据
                    console.log('resData:', resData);
                    component.set("v.resData", resData);
                    //分页
                    this.updateCurrentPageData(component, 1);
                } else {
                    // 处理错误
                    var errors = res.getError();
                    console.error(errors);
                }
            });
            // 队列处理
            $A.enqueueAction(action);
        }

        //当doCondition=doRegular时
        if (doCondition == 'doRegular') {
            console.log('init 转正申请');
            let action = component.get('c.doRegularApplication');
            action.setParams({
                emps: component.get('v.selectedData')
            });
            action.setCallback(this, function (res) {
                if (res.getState() == 'SUCCESS') {
                    console.log('转正申请 callback..');
                } else {
                    // 处理错误
                    var errors = res.getError();
                    console.error(errors);

                }
            });
            $A.enqueueAction(action);
        }
    },

    // 更新当前页面数据
    updateCurrentPageData: function (cmp, page) {
        console.log('updateCurrentPageData...');
        //获取所有数据
        let allData = cmp.get("v.resData");

        // 获取选中的数据
        let selectedData = cmp.get("v.selectedData");
        // 获取选中的数据id
        let selectedIds = selectedData.map(function (item) {
            return item.Id;
        });
        // 过滤已经添加的数据存储在临时数组中
        const filterAfterData = allData.filter((item) => {
            //如果当前元素的 Id 不在 selectedIds 数组中，即 !selectedIds.includes(item.Id) 为真，那么该元素符合筛选条件，会被保留在 filterAfterData 数组中
            return !selectedIds.includes(item.Id);
        });

        // 根据临时数组重新分页，每页显示的数据量和总数据量，计算总页数
        let pageSize = cmp.get("v.pageSize");
        let totalPage = Math.ceil(filterAfterData.length / pageSize);
        cmp.set("v.totalPage", totalPage);
        //判断当前页
        if (page > totalPage) {
            page = totalPage;
        }
        if (page < 1) {
            page = 1;
        }
        cmp.set("v.currentPage", page);

        // 根据当前页数和每页显示的数据量，计算起始索引和结束索引
        let startIndex = (page - 1) * pageSize;
        let endIndex = startIndex + pageSize;

        // 获取当前页的数据(上表)
        let currentPageData = filterAfterData.slice(startIndex, endIndex);
        cmp.set("v.currentPageData", currentPageData);

        // 检查页面复选框是否全选
        this.checkIsAllSelected(cmp);
    },

    // 检查页面复选框是否全选
    checkIsAllSelected: function (cmp) {
        console.log('checkIsAllSelected...');
        //查找具有 aura:id 属性值为 'checkboxItem' 的所有组件
        let checkboxs = cmp.find('checkboxItem');
        console.log('checkboxs:', checkboxs);
        // every:如果对于数组中的每个元素，回调函数都返回true，则every函数的返回值为true；如果有任何一个元素使回调函数返回false，则every函数的返回值为false。
        // const allSelected = checkboxs.every(function (item) {
        //     return item.get('v.value');
        //   );
        let allSelected = true;
        const currentPageData = cmp.get('v.currentPageData');
        currentPageData.forEach((item) => {
            if (!item.isSelected) {
                allSelected = false;
                return;
            }
        })
        //判断当前页面所有复选框的状态
        console.log('allSelected=' + allSelected);
        //更新组件的 isAllSelected 属性
        cmp.set('v.isAllSelected', allSelected);
    }


})